package com.example.framework509.common.annotation;

import org.springframework.web.bind.annotation.RequestMapping;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Remind("" +
        "默认只执行自动逻辑，不执行自定义逻辑" +
        "CUSTOM_EXECUTE为true，AUTO_EXECUTE为false时，仅执行自定义逻辑并返回值；" +
        "CUSTOM_EXECUTE为false，AUTO_EXECUTE为true时，仅执行自动逻辑；" +
        "CUSTOM_EXECUTE、AUTO_EXECUTE均为true时，执行自动逻辑和自定义逻辑，返回自动逻辑" +
        "CUSTOM_EXECUTE、AUTO_EXECUTE均为false时，返回“no action to do.”。" +
        "" +
        "MENU_CODE不填时默认为-1，表示不进行权限验证" +
        "")
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@RequestMapping()
public @interface AutoEntityProcess {

    Class<?> BUSINESS_CLASS() default Object.class;

    String LOG_MSG();

    boolean AUTO_EXECUTE() default true;

    boolean CUSTOM_EXECUTE() default false;

    int MENU_CODE() default -1;

    String PERMISSION_TYPE() default "2345";

    boolean CUSTOM_EXECUTE_WITHOUT_TRANSACTIONAL() default false;

}
